package modelo.estados;

import modelo.estados.Iniciada;
import modelo.estados.Estado;
import modelo.exception.SameStateException;
import modelo.exception.StatusChangeException;
/**
 * 
 * @author Cristian
 *
 */
public class Cerrada extends Estado{

	/**
	 * @return Estado
	 * @throws ExceptionSameState
	 */
	public Estado cambiarACerrado() throws SameStateException {
		throw new SameStateException("Mismo Estado");
	}
	
	/**
	 * @return Estado
	 * @throws ExceptionStatusChange
	 */
	public Estado cambiarACreado() throws StatusChangeException{
		throw new StatusChangeException("No se puede cambiar al Estado eleido");
	}

	/**
	 * @return Estado
	 * @throws ExceptionStatusChange
	 */
	public Estado cambiarAEnTrabajo() throws StatusChangeException{
		throw new StatusChangeException("No se puede cambiar al Estado elegido");
	}
	
	/**
	 * @return Estado
	 * @throws ExceptionStatusChange
	 */
	public Estado cambiarAFinalizado() throws StatusChangeException{
		throw new StatusChangeException("No se puede cambiar al Estado elegido");
	}

	/**
	 * Retorna el estado Iniciada.
	 * @return Estado
	 */
	public Estado cambiarAIniciado(){
		return new Iniciada();
	}

	/**
	 * @return Estado
	 * @throws ExceptionStatusChange
	 */
	public Estado cambiarAPausado() throws StatusChangeException{
		throw new StatusChangeException("No se puede cambiar al Estado elegido");
	}
	
	public boolean estaCerrado(){
		return true;
	}

	@Override
	public String getNombre() {
		return "Cerrada";
	}
}
